home *** CD-ROM | disk | FTP | other *** search
/ SPACE 1 / SPACE - Library 1 - Volume 1.iso / program / 16 / whatis.doc < prev    next >
Text File  |  1985-11-19  |  47KB  |  1,527 lines

  1.  
  2. ! ( n addr  -- )
  3.    Store 32-bit number
  4. !csp ( -- )
  5.    Remember the stack pointer
  6. " ( -- addr len )    string"
  7.    Collect a string from the input stream
  8. "" ( -- addr )    word
  9.    Collect a word from the input stream
  10. ", ( addr len -- )
  11.    Place a string at the top of the dictionary
  12. ". ( addr -- )
  13.    Display a packed string.  Equivalent to COUNT TYPE
  14. "cat ( startstr-addr endstr-addr -- )
  15.    Append the packed string at startstr-addr to the end of the other one
  16. "compile ( string -- )
  17.    Compile or interpret a word
  18. "copy ( fromaddr toaddr -- )
  19.    Copy a packed string from fromaddr to toaddr
  20. "create ( str -- )
  21.    Define a word from a string on the stack
  22. "load ( string -- )
  23.    Load the file whose name is the packed string on the stack
  24. "move ( addr1 addr2 -- addr2 )
  25.    Move packed string from addr1 to addr2
  26. # ( +l1  --  +l2 )
  27.    Convert a digit in pictured output
  28. #> ( l  --  addr +n )
  29.    End pictured output
  30. #align ( -- n )
  31.    The alignment granularity for the cpu; 2 for 68000
  32. #columns ( -- n )
  33.    The number of text columns on the screen
  34. #fbufs ( -- n )
  35.    The number of file buffers
  36. #fds ( -- n )
  37.    The number of file descriptors available for use by FLOAD
  38. #line ( -- addr )
  39.    User variable containing the line number on the output device
  40. #lines ( -- n )
  41.    The number of text lines on the screen
  42. #out ( -- addr )
  43.    User variable containing the column number on the output device
  44. #s ( +l  --  0 0 )
  45.    Convert rest of digits in pictured output
  46. #thread ( -- n )
  47.    The number of threads used by the dictionary hashing scheme
  48. #tib ( -- addr )
  49.    Size of Terminal Input Buffer
  50. #times ( -- )
  51.    Number of times to re-interpret command line
  52. #user ( -- n )
  53.    The first unused USER area offset
  54. #vocs ( -- n )
  55.    The number of vocabularies that can be in the search order at one time
  56. ' ( -- addr )    name
  57.    Find a word in the dictionary
  58. 'tib ( -- addr )
  59.    Variable containing the address of the terminal input buffer
  60. 'user# ( -- user# )    word
  61.    Find the user number associated with the word if there is one
  62. 'word ( -- addr )
  63.    Address where WORD puts its string
  64. ( ( -- )
  65.    Begin a comment
  66. (") ( -- addr len )
  67.    Run-time word compiled by "
  68. ("s) ( -- addr )
  69.    Run-time word compiled by [""]
  70. (') ( -- acf )
  71.    Run-time word compiled by [']
  72. (+loop) ( n -- )
  73.    Run-time word compiled by +LOOP
  74. (.") ( -- )
  75.    Run-time word compiled by ."
  76. (.) ( n -- addr len )
  77.    Convert a signed number to a character string
  78. (.s ( -- )
  79.    Display the contents of the data stack
  80. (;code) ( -- )
  81.    Run-time word compiled by ;CODE and DOES>
  82. (?do) ( end start -- )
  83.    Run-time word compiled by ?DO
  84. (?leave) ( flag -- )
  85.    Run-time word compiled by ?LEAVE
  86. (abort ( -- )
  87.    Interpret keyboard commands
  88. (abort") ( flag -- )
  89.    Run-time word compiled by ABORT"
  90. (bye ( -- )
  91.    Exit from Forth
  92. (cd ( path -- )
  93.    Change current directory
  94. (cold-hook ( -- )
  95.    Place to install user-defined initialization code
  96. (compile) ( acf -- )
  97.    Compile a compilation address into the dictionary
  98. (cr ( -- )
  99.    Output a carriage return character
  100. (create ( -- )    name
  101.    Default implementation of CREATE
  102. (disk-free ( -- bytes-free )
  103.    Return number of free bytes on current drive
  104. (do) ( end start -- )
  105.    Run-time word compiled by DO
  106. (emit ( char -- )
  107.    Run-time word compiled by ENDCASE
  108. (endof) ( -- )
  109.    Run-time word compiled by ENDOF
  110. (exec ( program-filename command-tail -- )
  111.    Execute a TOS program
  112. (expect ( addr +n -- )
  113.    Show files matching pattern
  114. (forget) ( addr -- )
  115.    Reclaim the dictionary space after addr
  116. (interactive? ( -- flag )
  117.    True if the input stream is interactive
  118. (interpret ( -- )
  119.    Interpret the input stream
  120. (is ( action-acf deferred-acf -- )
  121.    Install a new action in a DEFER word
  122. (is) ( action-acf -- )
  123.    Run-time word compiled by IS
  124. (l.) ( l -- addr len )
  125.    Convert a signed 32-bit number to a character string
  126. (leave) ( -- )
  127.    Run-time word compiled by LEAVE
  128. (lf ( -- )
  129.    Output a linefeed character
  130. (literal? ( str -- str false | literal true )
  131.    Check to see if a string is a number during interpreting or compilation
  132. (load ( fd -- )
  133.    Load the file whose file descriptor is fd
  134. (loop) ( -- )
  135.    Run-time word compiled by LOOP
  136. (md ( path -- )
  137.    Make a new directory
  138. (more 
  139.    Display file, pausing at end of screen
  140. (number ( addr -- l )
  141.    Convert a character string to a 32-bit number or abort
  142. (of) ( selector test -- [selector] )
  143.    Run-time word compiled by OF
  144. (patch ( new-number old-number acf -- )
  145.    Substitute new-number for first instance of old-number after acf
  146. (pgo ( addr -- )
  147.    Execute TOS program
  148. (pload ( program-filename command-tail -- addr )
  149.    Load a TOS program
  150. (prompt ( -- )
  151.    Display a prompt on the screen
  152. (quit ( -- )
  153.    Interpret keyboard commands
  154. (rd ( path -- )
  155.    Delete a directory
  156. (rename ( old-name new-name -- )
  157.    Rename a file
  158. (rstrace ( end-addr start-addr -- )
  159.    Display words nested on the return stack image between end and start
  160. (s ( -- )    stack-comment
  161.    Alternate from of stack comment
  162. (see) ( acf -- )
  163.    Decompile the word
  164. (set-relocation-bit ( addr -- addr )
  165.    Set the relocation bit corresponding to the address addr
  166. (size ( match-str -- )
  167.    Show sizes of files matching pattern
  168. (tail 
  169.    Display the end of the file, pausing at end of screen
  170. (type ( addr +n -- )
  171.    Display n characters
  172. (u.) ( u -- addr len )
  173.    Convert an unsigned number to a character string
  174. (ul.) ( ul -- addr len )
  175.    Convert an unsigned 32-bit number to a character string
  176. (warm-hook ( -- )
  177.    Place to install a user-defined handler for hardware exceptions
  178. (where ( -- )
  179.    Print a message telling where in the input stream you are
  180. (word ( char -- addr )
  181.    Collect char-delimited input string
  182. * ( n1 n2  --  n3 )
  183.    Multiply n1 times n2
  184. */ ( n1 n2 n3  -- n4 )
  185.    n1*n2/n3
  186. */mod ( n1 n2 n3  -- n4 n5 )
  187.    n4 is remainder, n5 is quotient of n1*n2/n3
  188. + ( n1 n2 -- n3 )
  189.    Add n1+n2
  190. +! ( n addr -- )
  191.    Add n to number stored at addr
  192. +dis ( -- )
  193.    Continue disassembling from the last stopping point
  194. +fseek ( l.offset fd -- )
  195.    Move position within a file
  196. +loop ( n -- )
  197.    End of DO .. +LOOP; increment by n
  198. +str ( addr1 -- addr2 )
  199.    Find the end of the packed string at addr1
  200. , ( n -- )
  201.    Place a number in the dictionary
  202. ," ( -- )    string"
  203.    Place a string at the top of the dictionary
  204. - ( n1 n2 -- n3 )
  205.    Subtract n1-n2
  206. -rot ( n1 n2 n3  ---  n3 n1 n2 )
  207.    Shuffle 3 stack items
  208. -trailing ( addr +n1  --  addr +n2 )
  209.    Remove trailing blanks
  210. . ( n  -- )
  211.    Print a number
  212. ." ( -- )
  213.    Display a string
  214. .( ( -- )
  215.    Display a string immediately
  216. .calls ( acf -- )
  217.    Show all the words which call the word acf
  218. .current-word ( ip -- )
  219.    Print the name of a word given any address within its body
  220. .d ( n -- )
  221.    Display n in decimal without changing BASE
  222. .date ( day month year -- )
  223.    Display the date from numbers on the stack
  224. .dir 
  225.    Print current directory name
  226. .disk-free     drive-name
  227.    Show free space on current drive
  228. .id ( anf -- )
  229.    Display the name of a word from its name field address
  230. .month ( month -- )
  231.    Display the name of the numbered month
  232. .name ( acf -- )
  233.    Display the name of a word from its compilation address
  234. .now ( -- )
  235.    Display the current time
  236. .r ( n +n -- )
  237.    Print number in fixed width field
  238. .s ( -- )
  239.    Display the contents of the data stack
  240. .tab ( string-length -- )
  241.    Advance to next output field
  242. .time ( seconds minutes hours -- )
  243.    Display the time from numbers on the stack
  244. .today ( -- )
  245.    Display today's date
  246. .version ( -- )
  247.    Displays the version number of the Forth system
  248. .x ( n -- )
  249.    Display n in hex without changing BASE
  250. / ( n1 n2  --  n3 )
  251.    Divide n1/n2
  252. /c ( -- n )
  253.    Multiply by the size of a byte
  254. /fbuf ( -- n )
  255.    The number of bytes in a file buffer
  256. /fd ( -- n )
  257.    The number of bytes in a file descriptor
  258. /l ( -- n )
  259.    Multiply by the size of a longword
  260. /link ( -- n )
  261.    The number of bytes in a dictionary link; 4
  262. /mod ( n1 n2  --  n3 n4 )
  263.    n3 is remainder, n4 is quotient of n1/n2
  264. /n ( -- n )
  265.    Multiply by the size of a stack item
  266. /token ( -- n )
  267.    The number of bytes in a compiled address; 4
  268. /w ( -- n )
  269.    Multiply by the size of a word
  270. 0< ( n  --  flag )
  271.    Is n < 0 ?
  272. 0<= ( n  --  flag )
  273.    True if n is less than or equal to zero
  274. 0<> ( n  --  flag )
  275.    True if n is not equal to zero
  276. 0= ( n  --  flag )
  277.    Is n = 0 ?
  278. 0> ( n  --  flag )
  279.    Is n > 0 ?
  280. 0>= ( n  --  flag )
  281.    True if n is greater than or equal to zero
  282. 1+ ( n1  --  n2 )
  283.    Add 1
  284. 1- ( n1  --  n2 )
  285.    Subtract 1
  286. 16-bit ( -- )
  287.    Abort since this isn't a 16-bit system
  288. 16\ ( -- )
  289.    Ignore rest of line since this isn't a 16-bit system
  290. 2! ( n1 n2 addr -- )
  291.    Store 2 numbers
  292. 2* ( n1 -- n2 )
  293.    Multiply by 2
  294. 2+ ( n1 -- n2 )
  295.    Add 2
  296. 2- ( n1 -- n2 )
  297.    Subtract 2
  298. 2/ ( n1 -- n2 )
  299.    Divide by 2
  300. 25lines ( -- )
  301.    Display text in 25 lines x 80 columns format; monochrome only
  302. 2@ ( addr -- n1 n2 )
  303.    Fetch 2 numbers
  304. 2constant ( n1 n2  -- )
  305.    Define a 2-number constant
  306. 2drop ( n1 n2  -- )
  307.    Remove 2 numbers from stack
  308. 2dup ( n1 n2 --  n1 n2  n1 n2 )
  309.    Duplicate 2 numbers
  310. 2over ( n1 n2  n3 n4  --  n1 n2  n3 n4  n5 n6 )
  311.    Copy 2 numbers
  312. 2rot ( n1 n2  n3 n4  n5 n6  --  n3 n4  n5 n6  n1 n2 )
  313.    Rotate 3 pairs of numbers
  314. 2swap ( n1 n2  n3 n4  --  n3 n4  n1 n2 )
  315.    Exchange 2 pairs of numbers
  316. 2variable ( -- )
  317.    Define a variable for 2 numbers
  318. 32-bit ( -- )
  319.    Do nothing, since this is a 32-bit system
  320. 32\ ( -- )
  321.    Interpret rest of line since this is a 32-bit system
  322. 3dup ( a b c -- a b c a b c )
  323.    Duplicate 3 stack items
  324. 4* ( n1 -- n2 )
  325.    Multiply by 4; use /N* instead
  326. 40lines ( -- )
  327.    Display text in 40 lines x 80 columns format; monochrome only
  328. 44lines ( -- )
  329.    Display text in 44 lines x 80 columns format; monochrome only
  330. 4dup ( a b c d-- a b c d a b c d )
  331.    Duplicate 4 stack items
  332. 50lines ( -- )
  333.    Display text in 50 lines x 80 columns format; monochrome only
  334. 8* ( n1 -- n2 )
  335.    Multiply by 8
  336. : ( -- sys )    name
  337.    Start compiling a new procedure
  338. ; ( -- )
  339.    Finish compiling a procedure
  340. ;code ( C,I,206 )
  341.    Start an assembly language run-time clause
  342. < ( n1 n2  --  flag )
  343.    Is n1 < n2 ?
  344. <# ( -- )
  345.    Initialize pictured output
  346. << ( n1 cnt -- n2 )
  347.    Left shift count places
  348. <<a ( n1 cnt -- n2 )
  349.    Arithmetic left shift count places
  350. <= ( n1 n2  --  flag )
  351.    True if n1 is less than or equal to n2
  352. <> ( n1 n2  --  flag )
  353.    True if n1 is not equal to n2
  354. <mark ( -- addr )
  355.    Remember target of backward branch
  356. <resolve ( addr -- )
  357.    Finish a backward branch
  358. <w@ ( addr -- n )
  359.    Fetch the signed word at addr
  360. = ( n1 n2  --  flag )
  361.    Is n1 = n2 ?
  362. > ( n1 n2  --  flag )
  363.    Is n1 > n2 ?
  364. >= ( n1 n2  -- flag )
  365.    True if n1 is greater than or equal to n2
  366. >> ( n1 cnt -- n2 )
  367.    Right shift count places
  368. >>a ( n1 cnt -- n2 )
  369.    Arithmetic right shift count places
  370. >body ( addr1 -- addr2 )
  371.    Find the data storage address for the word at acf
  372. >dmy ( GEMDOS-packed-date -- day month year )
  373.    Convert to GEMDOS packed date format
  374. >hms ( GEMDOS-packed-time -- seconds minutes hours )
  375.    Convert from GEMDOS packed time format
  376. >in ( -- addr )
  377.    Not Implemented
  378. >link ( addr1 -- addr2 )
  379.    Find link field from compilation address
  380. >mark ( -- addr )
  381.    Remember location of forward branch
  382. >name ( addr1 -- addr2 )
  383.    Find name field from compilation address
  384. >r ( n -- )
  385.    Move number to return stack
  386. >relbit ( addr -- offset rel-table-addr )
  387.    Convert addr to a bit offset and the relocation table address
  388. >resolve ( addr -- )
  389.    Finish a forward branch
  390. >threads ( voc-acf -- thread )
  391.    Find the threads for a vocabulary
  392. >type ( addr +n -- )
  393.    Display characters and store them at PAD
  394. >user ( apf -- user-var-addr )
  395.    Find a user number that is in the parameter field
  396. >user# ( acf -- user# )
  397.    Find the user number associated with the word if there is one
  398. ? ( addr  -- )
  399.    Display the contents of a variable
  400. ??cr ( -- )
  401.    New line if not already at left side of line
  402. ?branch ( flag -- )
  403.    High-level conditional branch
  404. ?comp ( -- )
  405.    Abort if not compiling
  406. ?cr ( -- )
  407.    New line if fewer than no space left on this one
  408. ?csp ( -- )
  409.    Check stack pointer again saved value
  410. ?dnegate ( d1 f -- d2 )
  411.    Obsolete
  412. ?do ( w1 w2 -- )
  413.    Begin a ?DO .. LOOP to be executed 0 or more times
  414. ?dup ( n  --  n n )
  415.    Duplicate if non-zero
  416. ?empty ( stack -- flag )
  417.    True if the user stack is empty
  418. ?enough ( n -- )
  419.    Abort if the stack contains fewer than n numbers
  420. ?exec ( -- )
  421.    Abort if not interpreting
  422. ?leave ( flag -- )
  423.    Exit from a DO .. LOOP if flag is nonzero
  424. ?line ( n -- )
  425.    New line if fewer than n spaces left on this one
  426. ?lnegate ( l1 f -- l2 )
  427.    Negate if flag is true
  428. ?missing ( flag -- )
  429.    Abort if nonzero
  430. ?negate ( n f -- -n )
  431.    Negate if flag is true
  432. ?pairs ( n1 n2 -- )
  433.    Abort if n1 is not equal to n2
  434. ?stack ( -- )
  435.    Abort if the stack pointer is out of range
  436. ?to-column ( -- )
  437.    Advance output to indicated column or start new line
  438. @ ( addr  --  n )
  439.    Fetch 32-bit number
  440. a: 
  441.    Select drive A
  442. abort ( -- )
  443.    Conditional abort with message
  444. abs ( n -- u )
  445.    Absolute value
  446. alias ( -- )    new-name existing-name
  447.    Create a new name for an existing word
  448. align ( -- )
  449.    Make sure the dictionary pointer is on a machine word boundary
  450. aligned ( addr1 -- addr2 )
  451.    Adjust an address to a machine word boundary
  452. alloc-mem ( nbytes -- addr )
  453.    Allocate nbytes of memory and return its address
  454. allot ( n -- )
  455.    Allocate space in the dictionary
  456. also ( -- )
  457.    Extend the search order
  458. and ( n1 n2 -- n3 )
  459.    Logical and
  460. another-file? ( -- more? )
  461.    Select next matching file name
  462. another? ( -- [ anf ] more? )
  463.    Select next word in vocabulary
  464. append-open ( name -- )
  465.    Open file for appending
  466. append-to-file ( -- )    filename
  467.    Temporarily redirect output to the end of a file
  468. appending     filename
  469.    Open file for appending
  470. ascii ( -- char )    word
  471.    Numerical value of first ascii character of next word
  472. assembler ( -- )
  473.    Vocabulary containing the assembler
  474. at ( line column -- )
  475.    Move the cursor to line,column on the screen
  476. b: 
  477.    Select drive B
  478. backspaces ( n -- )
  479.    Output n backspaces
  480. base ( --  addr )
  481.    Variable containing number base
  482. base-page ( -- addr )
  483.    The address of Forth's base page
  484. bdos: ( function# -- )
  485.    Begin defining a word to execute a GEMDOS/BDOS function
  486. beep ( -- )
  487.    Ring the bell
  488. begin ( -- )
  489.    Beginning of BEGIN .. WHILE .. REPEAT loop
  490. bell ( -- n )
  491.    The ascii code for the bell character
  492. between ( n min max -- f )
  493.    True if min <= n <= max
  494. binary ( -- )
  495.    Set number base to two
  496. bios: ( function# -- )
  497.    Begin defining a word to execute a BIOS function
  498. bitclear ( bit# addr -- )
  499.    Clears bit number bit# in the array at addr
  500. bitset ( bit# addr -- )
  501.    Sets bit number bit# in the array at addr
  502. bittest ( bit# addr -- flag )
  503.    True if bit number bit# in the array at addr is set
  504. bl ( -- n )
  505.    The ascii code for the blank character; decimal 32
  506. blank ( addr u -- )
  507.    Set u bytes of memory to blank
  508. blk ( -- addr )
  509.    Not Implemented
  510. block ( u -- addr )
  511.    Not Implemented
  512. blword ( -- addr )    word
  513.    Get a blank-delimited word and return it as a packed string
  514. body> ( addr1 -- addr2 )
  515.    Find compilation address form parameter field
  516. bounds ( addr1 len -- addr2 addr1 )
  517.    Convert address and length to endaddr startaddr
  518. branch ( -- )
  519.    High-level unconditional branch
  520. bs ( -- n )
  521.    The ascii code for the backspace character
  522. buffer ( u -- addr )
  523.    Not Implemented
  524. bye ( -- )
  525.    Store 8-bit number
  526. c, ( n -- )
  527.    Place a byte in the dictionary
  528. c: 
  529.    Select drive C
  530. c@ ( addr  --  n )
  531.    Fetch 8-bit number
  532. ca+ ( addr1 index -- addr2 )
  533.    Increment by index times the size of a byte
  534. ca1+ ( addr1 -- addr2 )
  535.    Increment by the size of a byte
  536. caller-stack ( -- addr )
  537.    USER variable containing the cold-start value of the stack pointer
  538. canonical ( addr -- addr )
  539.    Convert a string to lower case
  540. caps ( -- addr )
  541.    USER variable controlling upper case/lower case sensitivity
  542. caps-comp ( addr1 addr2 len -- n )
  543.    Compare two byte arrays ignoring case.  n is 0 if they are the same
  544. carret ( -- n )
  545.    The ascii code for the carriage return character
  546. case ( selector -- selector )
  547.    Begins a CASE ... ENDCASE conditional
  548. cd     directory
  549.    Change current directory
  550. cdis ( acf -- )
  551.    Disassemble the code word at acf
  552. chdir 
  553.    Same as CD
  554. child-status ( -- addr )
  555.    Status returned by last TOS program executed
  556. clear ( ??? -- )
  557.    Empty the data stack
  558. clearstack ( stack -- )
  559.    Empty a user stack
  560. close ( fd -- )
  561.    Close a file
  562. close-files ( -- )
  563.    Close all the open file
  564. cmove ( addr1 addr2 u -- )
  565.    Copy u bytes from addr1 to addr2
  566. cmove> ( addr1 addr2 u -- )
  567.    Copy u bytes from addr1 to addr2
  568. cnot ( c1 -- c2 )
  569.    8-bit logical inversion
  570. code ( -- sys )    name
  571.    Start defining an assembly language procedure
  572. cold ( -- )
  573.    Initializes the Forth system when it is first started
  574. cold-hook ( -- )
  575.    Vocabulary containing helper words for the command completion feature
  576. command: ( -- )    name program-filename
  577.    Defining word for commands to execute TOS programs
  578. comp ( addr1 addr2 len -- n )
  579.    Compare two byte arrays.  n is 0 if they are the same
  580. compare ( addr1 addr2 len -- n )
  581.    Compare two byte arrays.  n is 0 if they are the same
  582. compile ( -- )
  583.    Compile next word at run time
  584. compile-do-defined ( cfa -1 | cfa 1 -- )
  585.    Called to handle a predefined word during compilation
  586. compile-do-literal ( l -- )
  587.    Called to handle number during compilation
  588. compile-do-undefined ( str -- )
  589.    Called to handle an undefined word during compilation
  590. constant ( n -- )    name
  591.    Define a constant
  592. context ( -- addr )
  593.    Array of vocabularies to search
  594. control ( -- char )    word
  595.    Control character number of first character of next word
  596. convert ( +l1 addr1  --  +l2 addr2 )
  597.    Convert characters to a number
  598. copy1     source-file destination-file
  599.    Manual file copy
  600. count ( addr1 --  addr2 +n )
  601.    Unpack a packed string
  602. cr ( -- )
  603.    Initial action for words defined by DEFER
  604. crash-rstrace ( -- )
  605.    Display the return stack image saved from the last crash
  606. create ( -- )    name
  607.    Generic defining word
  608. creset ( byte-mask addr -- )
  609.    Clear bits within the byte at addr
  610. crlf ( -- )
  611.    Go to next line
  612. crlf ( -- )
  613.    Output a carriage return & linefeed; adjust #LINE & #OUT
  614. csearch ( c start-addr end-addr -- loc true | false )
  615.    Search for byte c between start-addr and end-addr
  616. cset ( byte-mask addr -- )
  617.    Set bits within the byte at addr
  618. cstr ( addr -- cstr-addr )
  619.    Convert Forth string to C string
  620. cstrlen ( cstr-addr -- len )
  621.    Length of a null-terminate C string
  622. ctoggle ( byte-mask addr -- )
  623.    Invert the masked bits within the byte at addr
  624. current ( -- addr )
  625.    Variable containing compilation vocabulary
  626. cursor-off ( -- )
  627.    Turns off the display cursor
  628. cursor-on ( -- )
  629.    Turns on the display cursor
  630. d+ ( wd1 wd2 -- wd3 )
  631.    Obsolete
  632. d- ( wd1 wd2 -- wd3 )
  633.    Obsolete
  634. d. ( d -- )
  635.    Obsolete
  636. d.r ( d +n-- )
  637.    Obsolete
  638. d0< ( d -- flag )
  639.    Obsolete
  640. d0> ( d -- flag )
  641.    Obsolete
  642. d: 
  643.    Select drive D
  644. d< ( d1 d2 -- flag )
  645.    Obsolete
  646. d< ( d1 d2 -- flag )
  647.    Obsolete
  648. d> ( d1 d2 -- flag )
  649.    Obsolete
  650. dark ( -- )
  651.    Use inverse video for future text; usually white-on-black
  652. decimal ( -- )
  653.    Set number base to 10
  654. defer ( -- )    name
  655.    Find compilation address of word from the input stream
  656. definer ( acf -- definer-acf )
  657.    Find the word which defined the word at acf
  658. definitions ( -- )
  659.    Set compilation vocabulary
  660. del 
  661.    Same as DELETE
  662. delete     filename
  663.    Delete a file
  664. delete ( name -- flag )
  665.    Delete a file
  666. delete-char ( -- )
  667.    Delete the character under the cursor from the screen; doesn't work
  668. delete-line ( -- )
  669.    Delete the current line from the screen
  670. delimiter ( -- addr )
  671.    USER variable containing the actual delimiter found by WORD
  672. depth ( -- +n )
  673.    How many numbers on stack?
  674. df 
  675.    Same as FREE
  676. digit ( char base -- digit true | char false )
  677.    Convert a character to a digit
  678. dir 
  679.    Same as FILES
  680. dir-attributes ( -- addr )
  681.    Variable containing attributes for file search
  682. dis ( -- )    code-word-name
  683.    Disassemble the code word
  684. disassembler ( -- )
  685.    Vocabulary containing helper words for the disassembler
  686. dma-buffer ( -- addr )
  687.    Buffer containing the file info found by ANOTHER-FILE?
  688. dmax ( d1 d2 -- d3 )
  689.    Obsolete
  690. dmin ( d1 d2 -- d3 )
  691.    Obsolete
  692. dmy> ( day month year -- GEMDOS-packed-date )
  693.    Convert from GEMDOS packed date format
  694. dnegate ( d1 -- d2 )
  695.    Obsolete
  696. do ( n1 n2 -- )
  697.    Beginning of DO .. LOOP
  698. do-defined ( cfa -1 | cfa 1 -- ?? )
  699.    Called to handle a predefined word during interpreting or compilation
  700. do-literal ( literal -- ?? )
  701.    Called to handle number during interpreting or compilation
  702. do-undefined ( str -- )
  703.    Called to handle an undefined word during interpreting or compilation
  704. dodoesaddr ( -- addr )
  705.    Variable containing the address of the DODOES routine
  706. does> ( -- addr )
  707.    Start run-time clause for defining words
  708. down ( -- )
  709.    Move the cursor down one line
  710. download ( -- )    filename
  711.    Receive binary data from the serial port and store into a file
  712. dpl ( -- addr )
  713.    Variable containing the position of the decimal point in last number input
  714. drop ( n -- )
  715.    Remove n from stack.
  716. dst? ( -- flag )
  717.    True if daylight savings time
  718. du ( addr -- addr+64 )
  719.    Display 64 bytes of memory starting at addr
  720. du< ( d1 d2 -- flag )
  721.    Obsolete
  722. du<= ( d1 d2 -- flag )
  723.    Display contents of memory
  724. dump ( addr len -- )
  725.    Display len bytes of memory starting at addr
  726. dup ( n -- n n )
  727.    Duplicate n.
  728. editor ( -- )
  729.    Not Implemented
  730. else ( -- )
  731.    Execute following code if IF failed
  732. emit ( char -- )
  733.    Display character
  734. empty-buffers ( -- )
  735.    Not Implemented
  736. end-code ( sys -- )
  737.    Stop defining an assembly language procedure
  738. end-string-array ( -- )
  739.    Finish defining a string array
  740. endcase ( selector -- )
  741.    Terminates a CASE ... ENDCASE conditional
  742. endof ( -- )
  743.    Terminates an OF ... ENDOF clause within a CASE ... ENDCASE conditional
  744. entry ( -- addr )
  745.    USER variable used to implement multitasking
  746. eof ( -- n )
  747.    Value returned by FGETC upon end of file
  748. era 
  749.    Same as DELETE
  750. erase ( addr u -- )
  751.    Set u bytes of memory to 0
  752. erase-screen ( -- )
  753.    Clear the screen
  754. error-output ( -- )
  755.    Select the error output stream
  756. eval ( addr len -- )
  757.    Interpret from a string
  758. even ( n1 -- n2 )
  759.    Adjust a number to make it even.  n2 >= n1
  760. exec ( -- )    program-filename command-tail
  761.    Execute TOS program
  762. execute ( addr -- )
  763.    Execute word on stack
  764. exit ( -- )
  765.    Return from current word
  766. exit? ( -- flag )
  767.    True if the user wants the output to be terminated
  768. expect ( addr +n -- )
  769.    Open a file for the keyboard
  770. false ( -- 0 )
  771.    The value FALSE, which is 0
  772. fexit ( -- )
  773.    Ignore the rest of the current input file
  774. fflush ( fd -- )
  775.    Write out buffered bytes to file
  776. fgetc ( fd -- byte )
  777.    Read a byte from a file
  778. fgets ( addr count fd -- nread )
  779.    Read a string from a file
  780. file-exists? ( name -- f )
  781.    True if the named file already exists
  782. file-pattern ( pattern-string -- )
  783.    Initialize the file search pattern for future calls to ANOTHER-FILE?
  784. file-protection ( -- addr )
  785.    Variable containing the attributes for newly-created files
  786. filec! ( byte l.addr fd -- )
  787.    Write a byte to a file
  788. filec@ ( l.addr fd -- byte )
  789.    Read a byte from a file
  790. files     pattern
  791.    Show files matching pattern; default *.*
  792. files ( -- )
  793.    Display names of files
  794. fill ( addr u byte  -- )
  795.    Set u bytes of memory to byte
  796. find ( addr1 -- addr2 n )
  797.    Find a word in the dictionary
  798. flip ( w1 -- w2 )
  799.    Swap bytes with lower word
  800. fload ( -- )    name
  801.    Interpret a file
  802. flush ( -- )
  803.    Not Implemented
  804. follow ( threads -- )
  805.    Prepare to scan a vocabulary; see ANOTHER?
  806. forget ( -- )    name
  807.    Remove word from dictionary
  808. forth ( -- )
  809.    The main vocabulary
  810. forth-83 ( -- )
  811.    Assert the dialect
  812. fputc ( byte fd -- )
  813.    Write a byte to a file
  814. fputs ( addr count fd -- )
  815.    Write a string to a file
  816. free-mem ( addr nbytes -- )
  817.    Frees memory allocated by ALLOC-MEM
  818. fseek ( l.addr fd -- )
  819.    Set position within a file
  820. fseek-from-end ( l.offset fd -- )
  821.    Set position from end of file
  822. fsize ( fd -- l.size )
  823.    Find size of a file
  824. fstr ( cstr-addr -- addr2 )
  825.    Convert C string to Forth string
  826. ftell ( fd -- l.addr )
  827.    Find current position within file
  828. getcword ( addr delim fd -- addr )
  829.    Read delimited string from file
  830. getword ( addr fd -- addr )
  831.    Read non-blanks from file
  832. here ( -- addr )
  833.    Address of top of dictionary
  834. hex ( -- )
  835.    Set number base to 16
  836. hidden ( -- )
  837.    Vocabulary containing words used only to implement other words
  838. hide ( -- )
  839.    Make the most recent word invisible
  840. hms> ( seconds minutes hours -- GEMDOS-packed-time )
  841.    Convert to GEMDOS packed time format
  842. hold ( char  -- )
  843.    Insert char in pictured output
  844. i ( -- n )
  845.    Loop index
  846. if ( flag -- )
  847.    Execute following code if flag is true
  848. ifd ( --  addr )
  849.    Variable for input file descriptor
  850. ifdef ( -- )    word
  851.    Continue interpreting if word is defined
  852. ifend ( -- )
  853.    Conditional useable while interpreting
  854. ifndef ( -- )    word
  855.    Continue interpreting if word is not defined
  856. iftrue ( [ flag ] -- )
  857.    Conditional useable while interpreting
  858. ignoredom ( -- )
  859.    Vocabulary containing conditional compilation words
  860. immediate ( -- )
  861.    Mark last word as immediate
  862. immediate? ( acf -- flag )
  863.    True if word is immediate
  864. in-file ( -- addr )
  865.    Variable containing the file descriptor of the current input file
  866. init-malloc ( -- )
  867.    Initialize the ALLOC-MEM memory allocator
  868. init-relocation ( -- )
  869.    Initialize the relocation table
  870. init-user ( -- )
  871.    Initialize the USER area at startup time
  872. insert-char ( char -- )
  873.    Insert the character at the cursor position; doesn't work right
  874. insert-line ( -- )
  875.    Insert a new line on the screen at the cursor position
  876. interactive? ( -- flag )
  877.    Interpret the input stream
  878. interpret-do-defined ( cfa -1 | cfa 1 -- ?? )
  879.    Called to handle a predefined word during interpreting
  880. interpret-do-literal ( l -- l | n )
  881.    Called to handle number during interpreting
  882. interpret-do-undefined ( str -- )
  883.    Called to handle an undefined word during interpreting
  884. is ( action-acf -- )    name
  885.    Install a new action in a DEFER word
  886. is-now ( seconds minutes hours -- )
  887.    Set the time
  888. is-today ( day month year -- )
  889.    Set the date
  890. isdst ( -- addr )
  891.    Variable containing true if daylight savings time
  892. j ( -- n )
  893.    Loop index for outer loop
  894. k ( -- n )
  895.    Loop index for second outer loop
  896. key ( -- char )
  897.    Vocabulary containing keystroke definitions for the command line editor
  898. kill-line ( -- )
  899.    Clear the current line to the right of the cursor
  900. kill-screen ( -- )
  901.    Clear the screen from the cursor position onward
  902. l* ( l1 l2 -- l3 )
  903.    Explicit 32-bit multiplication
  904. l+ ( l1 l2 -- l3 )
  905.    Explicit 32-bit addition
  906. l+! ( l addr  -- )
  907.    Add l to the 32-bit number at addr
  908. l, ( l -- )
  909.    Place a longword in the dictionary
  910. l- ( l1 l2 -- l3 )
  911.    Explicit 32-bit subtraction l1-l2
  912. l->n ( l -- n )
  913.    Convert a longword to a stack item; noop on this system
  914. l->w ( l -- w )
  915.    Convert a longword to a word
  916. l. ( l -- )
  917.    Display a 32-bit signed number
  918. l.r ( l +n -- )
  919.    Display a 32-bit signed number in a fixed-width field
  920. l0= ( l  --  flag )
  921.    True if l is zero
  922. l2/ ( l1 -- l2 )
  923.    Explicit 32-bit divide-by-2
  924. l2/ ( l1 -- l2 )
  925.    Explict 32-bit arithmetic right shift
  926. l2dup ( l1 l2 -- l1 l2 l1 l2 )
  927.    Duplicate a pair of longwords
  928. l< ( l1 l2  --  flag )
  929.    True if l1 is less than l2
  930. l<< ( l1 cnt -- l2 )
  931.    Explicit 32-bit left shift count places
  932. l<<a ( l1 cnt -- l2 )
  933.    Explicit 32-bit arithmetic shift count places
  934. l= ( l1 l2 -- flag )
  935.    True if l1 is equal to l2
  936. l>= ( l1 l2 -- flag )
  937.    True if l1 is less than l2; explicitly 32-bit
  938. l>> ( l1 cnt -- l2 )
  939.    Explicit 32-bit right shift count places
  940. l>>a ( l1 cnt -- l2 )
  941.    Explicit 32-bit arithmetic right shift count places
  942. l>name ( addr1 -- addr2 )
  943.    Find name field from link field
  944. l>r ( l -- )
  945.    Move a longword to the return stack
  946. l@ ( addr -- l )
  947.    Fetch the longword at addr
  948. la+ ( addr1 index -- addr2 )
  949.    Increment by index times the size of a longword
  950. la1+ ( addr1 -- addr2 )
  951.    Increment by the size of a longword
  952. labs ( l -- ul )
  953.    Explict 32-bit absolute value
  954. land ( l1 l2 -- l3 )
  955.    Explicit 32-bit logical and
  956. last ( -- addr )
  957.    USER variable containing the name field address of the last word created
  958. lbetween ( l1 lmin lmax -- flag )
  959.    True if lmin <= l1 <= lmax; explicitly 32-bit
  960. lcc ( char -- lower-case-char )
  961.    Convert to lower case
  962. lconstant ( l -- )    name
  963.    Define a 32-bit constant
  964. ldrop ( l -- )
  965.    Remove a longword from the stack
  966. ldup ( l -- l l )
  967.    Duplicate l
  968. leave ( -- )
  969.    Exit from DO .. LOOP
  970. left ( -- )
  971.    Move the cursor left one column
  972. length ( addr -- addr+2 len )
  973.    Unpack a string containing a 16-bit length field
  974. lf ( -- )
  975.    Output a linefeed character and adjust #LINE
  976. light ( -- )
  977.    Use normal video for future text; usually black-on-white
  978. linefeed ( -- n )
  979.    The ascii code for the line feed character
  980. link ( -- addr )
  981.    USER variable containing the address of the next task
  982. link! ( link addr -- )
  983.    Store a dictionary link
  984. link, ( link -- )
  985.    Place a link in the dictionary
  986. link> ( addr1 -- addr2 )
  987.    Find compilation address from link field
  988. link@ ( lfa -- link )
  989.    Fetch a dictionary link
  990. list ( u  -- )
  991.    Not Implemented
  992. literal ( -- n )
  993.    Compile a number
  994. literal? ( str -- str false | literal true )
  995.    Compile an explicit 32-bit number
  996. lmargin ( -- addr )
  997.    Variable containg left margin for output formatting
  998. lmax ( l1 l2 -- l3 )
  999.    Explict 32-bit maximum
  1000. lmin ( l1 l2 -- l3 )
  1001.    Explict 32-bit minimun
  1002. lnegate ( l1 -- l2 )
  1003.    Explicit 32-bit negation
  1004. lnot ( l1 -- l2 )
  1005.    Explicit 32-bit logical inversion
  1006. lnover ( l1 n -- l1 n l2 )
  1007.    Copy a longword over a normal
  1008. lnswap ( l n -- n l )
  1009.    Swap a longword and a normal
  1010. load ( u -- )
  1011.    Not Implemented
  1012. lobyte ( n -- c )
  1013.    Mask off high bits, leaving the least-significant byte
  1014. long? ( -- flag )
  1015.    True if the number that was just input contained a decimal point
  1016. loop ( -- )
  1017.    End of DO .. LOOP
  1018. lor ( l1 l2 -- l3 )
  1019.    Explicit 32-bit logical or
  1020. lose ( -- )
  1021.    Compiled in place of an undefined word; aborts
  1022. lower ( addr len -- )
  1023.    Convert a string to lower case
  1024. lr> ( -- l )
  1025.    Move a longword from the return stack
  1026. ls 
  1027.    Same as FILES
  1028. lswap ( l1 l2 -- l2 l1 )
  1029.    Swap 2 longwords
  1030. lu< ( ul1 ul2  --  flag )
  1031.    True if ul1 is less than ul2
  1032. lvariable ( -- )    name
  1033.    Define a 32-bit variable
  1034. lwithin ( l1 lmin lmax -- flag )
  1035.    True if lmin <= l1 < lmax; explicitly 32-bit
  1036. lwsplit ( l -- w.low w.high )
  1037.    Split a longword into two words
  1038. m/mod ( l.dividend n.divisor -- n.rem n.quot )
  1039.    Signed 32/normal remainder/quotient
  1040. main-task ( -- addr )
  1041.    The address of the USER area for the initial task
  1042. make ( name -- )
  1043.    Create a file
  1044. many ( -- )
  1045.    Re-interpret this command line until a key is typed
  1046. max ( n1 n2  --  n3 )
  1047.    n3 is maximum of n1 and n2
  1048. max-image ( -- size )
  1049.    The size in bytes of the maximum dictionary that may be relocated
  1050. md     directory
  1051.    Make a new directory
  1052. memfree ( -- #bytes )
  1053.    Number of bytes Forth can use for scratch storage
  1054. memtop ( -- addr )
  1055.    Variable containing the address of the top of memory used by Forth
  1056. min ( n1 n2  --  n3 )
  1057.    n3 is minimum of n1 and n2
  1058. mkdir 
  1059.    Same as MD
  1060. mload ( -- )
  1061.    Interpret a file coming over the serial port
  1062. mod ( n1 n2  -- n3 )
  1063.    Remainder of n1/n2
  1064. modify ( -- n )
  1065.    The code used by OPEN to mean the file is to be read and written
  1066. more     filename
  1067.    Display contents of file, pausing each page
  1068. move ( addr1 addr2 u -- )
  1069.    Copy u bytes from addr1 to addr2
  1070. mu/mod ( ul n -- n.rem ul.quot )
  1071.    Divede longword by normal giving normal remainder and long quotient
  1072. multi ( -- )
  1073.    Turns on multitasking
  1074. mv 
  1075.    Same as RENAME
  1076. n->a ( n -- addr )
  1077.    Convert a stack item to an address; noop on this system
  1078. n->l ( u -- l )
  1079.    Convert a stack item to a longword; noop on this system
  1080. n->w ( n -- w )
  1081.    Convert a stack item to a word
  1082. n>link ( addr1 -- addr2 )
  1083.    Find link field from name field
  1084. na+ ( addr1 index -- addr2 )
  1085.    Increment by index times the size of a stack item
  1086. na1+ ( addr1 -- addr2 )
  1087.    Increment by the size of a stack item
  1088. name> ( addr1 -- addr2 )
  1089.    Find compilation address from name field
  1090. needs ( -- )    needed-word filename
  1091.    Load file if needed-word is not already defined
  1092. negate ( n1 -- n2 )
  1093.    Change sign
  1094. new-file ( name -- )
  1095.    Create a new file and open it for writing
  1096. newexpect ( addr +n -- )
  1097.    Read a line from the keyboard
  1098. newline ( -- char )
  1099.    The character which terminates a line
  1100. next-free-mem ( -- addr )
  1101.    Variable containing the address of the end of free memory
  1102. nip ( n1 n2 -- n2 )
  1103.    Discard the second element from the data stack
  1104. nlover ( n1 l -- n1 l n2 )
  1105.    Copy a normal over a longword
  1106. nlswap ( n l -- l n )
  1107.    Swap a normal and a longword
  1108. noop ( -- )
  1109.    Do nothing
  1110. not ( n1 -- n2 )
  1111.    One's complement
  1112. now ( -- seconds minutes hours )
  1113.    The current time of day
  1114. npatch ( new-number old-number -- )    word-to-patch
  1115.    Substitute new-number for old-number in word-to-patch
  1116. nullstring ( -- addr )
  1117.    A packed string containing no bytes
  1118. number ( addr -- l )
  1119.    Convert a character string to a 32-bit number
  1120. nuser ( -- )    name
  1121.    Define and allocate space for a 32-bit user variable
  1122. octal ( -- )
  1123.    Set number base to eight
  1124. of ( selector test-value -- )
  1125.    Begins an OF ... ENDOF clause within a CASE ... ENDCASE conditional
  1126. ofd ( --  addr )
  1127.    Variable for output file descriptor
  1128. off ( addr  -- )
  1129.    Store false at addr
  1130. ok ( -- )
  1131.    Do nothing
  1132. on ( addr  -- )
  1133.    Store true at addr
  1134. only ( -- )
  1135.    Sets the minimum search order
  1136. open ( name mode -- fd )
  1137.    Open a file
  1138. or ( n1 n2 -- n3 )
  1139.    Logical or
  1140. order 
  1141.    Display the vocabulary search order
  1142. order ( -- )
  1143.    Display the search order
  1144. origin ( -- addr )
  1145.    The address of the start of the Forth system
  1146. otherwise ( -- )
  1147.    Conditional useable while interpreting
  1148. over ( n1 n2  --  n1 n2 n3 )
  1149.    n3 is a copy of n1.
  1150. over-vocabulary ( action-acf voc-acf -- )
  1151.    Scan a vocabulary executing action-acf for each word
  1152. pack ( addr1 len addr2 -- addr2 )
  1153.    Make a packed string at addr2
  1154. pad ( --  addr )
  1155.    Address of a scratch area
  1156. patch ( -- )    replacement-word replaced-word word-to-patch
  1157.    Substitute replacement for replaced in word-to-patch
  1158. pause ( -- )
  1159.    Give other tasks a chance to run
  1160. perform ( addr-of-acf -- )
  1161.    Execute the word contained in a variable
  1162. pick ( n1  --  n2 )
  1163.    Copy n-th number
  1164. place ( addr1 len addr2 -- )
  1165.    Make a packed string at addr2
  1166. pload ( -- addr )    program-filename command-tail
  1167.    Load TOS program
  1168. pop ( stack -- n )
  1169.    Pop a number off a user stack
  1170. previous ( -- )
  1171.    True if character is printable
  1172. probably-cfa? ( addr -- flag )
  1173.    True if addr looks like a compilation address
  1174. prompt ( -- )
  1175.    The size of the data stack in bytes
  1176. push ( n stack -- )
  1177.    Push a number on a user stack
  1178. pwd 
  1179.    Same as DIR
  1180. quit ( -- )
  1181.    Move number from return stack
  1182. r@ ( -- n )
  1183.    Copy from return stack
  1184. rd     directory
  1185.    Delete a directory
  1186. read ( -- n )
  1187.    The code used by OPEN to mean the file is to be opened for reading
  1188. read ( -- n )
  1189.    The code used by OPEN to mean the file is to be read
  1190. read-binary ( start-addr -- count )
  1191.    Receive binary data from the serial port storing it at start-addr
  1192. read-open ( name -- )
  1193.    Open file for reading
  1194. reading     filename
  1195.    Open file for reading
  1196. reasonable-ip? ( addr -- flag )
  1197.    True if addr appears to be inside the body of a colon definition
  1198. recursive ( -- )
  1199.    Allow a word being defined to call itself recursively
  1200. relocation-map ( -- addr )
  1201.    The address of the relocation table
  1202. rename     old-name  new-name
  1203.    Rename a file
  1204. repeat ( -- )
  1205.    End of BEGIN .. WHILE .. REPEAT loop
  1206. restore-output ( -- )
  1207.    Go back to the old output stream after ERROR-OUTPUT
  1208. reveal ( -- )
  1209.    Make the most recent word visible
  1210. right ( -- )
  1211.    Move the cursor right one column
  1212. rm 
  1213.    Same as DELETE
  1214. rmargin ( -- addr )
  1215.    Variable containg right margin for output formatting
  1216. rmdir 
  1217.    Same as DELDIR
  1218. roll ( n  -- )
  1219.    Rotate n numbers
  1220. root ( -- )
  1221.    Vocabulary selected by ONLY
  1222. rot ( n1 n2 n3  ---  n2 n3 n1 )
  1223.    Rotate 3 numbers
  1224. rp! ( addr -- )
  1225.    Change the return stack pointer
  1226. rp0 ( --  addr )
  1227.    Variable containing the address of the bottom of the return stack
  1228. rp@ ( -- addr )
  1229.    The address of the top of the return stack
  1230. rstrace ( -- )
  1231.    Display the words nested on the return stack
  1232. s->d ( n -- d )
  1233.    Obsolete
  1234. s. ( n -- )
  1235.    Display n as a signed number
  1236. save-buffers ( -- )
  1237.    Not Implemented
  1238. save-forth ( filename -- )
  1239.    Save a non-relocatable image of the Forth dictionary in a TOS file
  1240. save-rel ( filename -- )
  1241.    Save a relocatable image of the Forth dictionary in a TOS file
  1242. save-string ( string1 -- string2 )
  1243.    Move a string somewhere else
  1244. saved-ip ( -- addr )
  1245.    USER variable containing the interpreter pointer for an inactive task
  1246. saved-rp ( -- addr )
  1247.    USER variable containing the return stack pointer for an inactive task
  1248. saved-sp ( -- addr )
  1249.    USER variable containing the stack pointer for an inactive task
  1250. scr ( --  addr )
  1251.    Not Implemented
  1252. sdepth ( stack -- depth )
  1253.    Number of items on a user-defined stack
  1254. seal ( -- )
  1255.    Limit the search order
  1256. search ( n start end -- loc true | fals )
  1257.    Search for n between start-addr and end-addr
  1258. see ( -- )    word
  1259.    Decompile the word
  1260. set-relocation-bit ( addr -- addr )
  1261.    Display the machine state saved from the last crash
  1262. sift ( string -- )
  1263.    Find all words which contain string as part of their name
  1264. sifting ( -- )    string
  1265.    Find all words which contain string as part of their name
  1266. sign ( n  -- )
  1267.    Set sign of pictured output
  1268. sindex ( addr1 len1 addr2 len2 -- n )
  1269.    Find offset within string 1 where string 2 first occurs
  1270. single ( -- )
  1271.    Turns off multitasking
  1272. size ( -- )    pattern
  1273.    Show files and sizes; default *.*
  1274. skipcword ( char fd -- )    string
  1275.    Skip past next occurrence of char in file fd
  1276. skipstr ( -- addr len )
  1277.    Used to implement words with in-line strings
  1278. sp! ( addr -- )
  1279.    Change the data stack pointer
  1280. sp0 ( --  ADDR )
  1281.    Variable containing the address of the bottom of the Data Stack
  1282. sp@ ( -- addr )
  1283.    The address of the top of the data stack
  1284. space ( -- )
  1285.    Display a space
  1286. spaces ( +n  -- )
  1287.    Display n spaces
  1288. span ( -- addr )
  1289.    Contains # of characters read by EXPECT
  1290. splice-relocation ( filename -- )
  1291.    Used before SAVE-REL to get the relocation info from the TOS file
  1292. ssp ( -- addr )
  1293.    Variable containing the previous value of the Supervisor Stack Pointer
  1294. stack: ( #bytes -- )    name
  1295.    Define a user stack with #bytes of storage space
  1296. state ( -- addr )
  1297.    Variable that is nonzero in compile state
  1298. status ( -- )
  1299.    User-settable action to be performed before prompting for input
  1300. string-array ( -- )    name
  1301.    Begin defining a string array
  1302. string-fopen ( addr len -- fd )
  1303.    Open a file for a memory string
  1304. string-load ( addr len -- )
  1305.    Same as EVAL
  1306. subroutine: ( addr -- )
  1307.    Begin defining a word to execute a subroutine call to addr
  1308. substring? ( str1 str2 -- flag )
  1309.    True if str1 is a substring of str2
  1310. supervisor-state ( -- )
  1311.    The processor is put in user state
  1312. swap ( n1 n2  --  n2 n1 )
  1313.    Exchange top 2 numbers.
  1314. sys-(key? ( -- flag )
  1315.    True if a key has been typed
  1316. sys-emit ( char -- )
  1317.    Display character
  1318. sys-key ( -- char )
  1319.    Read character from keyboard
  1320. system ( -- )
  1321.    Vocabulary containing GEMDOS interface words
  1322. ta1+ ( addr1 -- addr2 )
  1323.    Increment by the size of a compiled address
  1324. tabstops ( -- addr )
  1325.    Variable containing distance between output fields
  1326. tail     filename
  1327.    Display last 1000 bytes of file
  1328. td ( -- ? )
  1329.    Interpret next word or number in DECIMAL mode
  1330. th ( -- ? )
  1331.    Interpret next word or number in HEX mode
  1332. then ( -- )
  1333.    Terminate an IF ... ELSE ... THEN
  1334. tib ( -- addr )
  1335.    Terminal Input Buffer
  1336. tib-fd ( -- fd )
  1337.    File descriptor for the interactive input stream
  1338. time-zone ( -- minutes-west-of-GMT )
  1339.    The local time zone
  1340. time-zone-minutes ( -- addr )
  1341.    Variable containing the number of minutes west of GMT; see TIME-ZONE
  1342. times ( n -- )
  1343.    Re-interpret this command line n times
  1344. title ( -- )
  1345.    Displays the name and version of the Forth system
  1346. to-column ( column -- )
  1347.    Advance output to indicated column
  1348. to-file ( -- )    filename
  1349.    Temporarily redirect output to a file
  1350. today ( -- day month year )
  1351.    Today's date
  1352. toggle ( addr byte-mask -- )
  1353.    Invert the masked bits within the byte at addr
  1354. token! ( addr2 addr1 -- )
  1355.    Store a relocatable address at addr1
  1356. token, ( addr -- )
  1357.    Place a relocatable address in the dictionary
  1358. token@ ( addr1 -- addr2 )
  1359.    Fetch a relocatable address
  1360. top! ( n stack -- )
  1361.    Replace the top number on a user stack
  1362. top@ ( stack -- n )
  1363.    Get the top number from a user stack without popping it
  1364. trap: ( function# trap# -- )    name
  1365.    Begin defining a word to execute a trap call
  1366. true ( -- -1 )
  1367.    The value TRUE , which is -1
  1368. tsearch ( addr start end -- loc true | false )
  1369.    Search for address addr between start-addr and end-addr
  1370. tuck ( n1 n2 -- n2 n1 n2 )
  1371.    Copy the top of the stack underneath the second item
  1372. tuser ( -- )    name
  1373.    Define and allocate space for a user variable to contain an address
  1374. type ( addr +n -- )
  1375.    Unsigned u1*u2
  1376. u. ( u  -- )
  1377.    Print an unsigned number
  1378. u.r ( u +n -- )
  1379.    Print unsigned number in fixed width field
  1380. u2/ ( u1 -- u2 )
  1381.    Logical right shift
  1382. u< ( u1 u2  --  flag )
  1383.    Unsigned version of < .
  1384. u<= ( u1 n2 -- flag )
  1385.    True if u1 is less than or equal to u2
  1386. u> ( u1 n2 -- flag )
  1387.    True if u1 is greater than u2
  1388. u>= ( u1 n2 -- flag )
  1389.    True if u1 is greater than or equal to u2
  1390. ualloc ( size -- new-user-number )
  1391.    Allocate space in the user area
  1392. ul* ( ul1 ul2 -- lproduct )
  1393.    Unsigned 32x32 -> 32 multiply
  1394. ul. ( ul -- )
  1395.    Display a 32-bit unsigned number
  1396. ul.r ( ul +n -- )
  1397.    Display a 32-bit unsigned number in a fixed-width field
  1398. um* ( uw1 uw2 -- ul )
  1399.    16 bits times 16 bits unsigned multiply
  1400. um/mod ( ul.dividend un.divisor -- un.rem un.quot )
  1401.    Unsigned 32/normal remainder/quotient
  1402. umax ( u1 u2 -- u3 )
  1403.    Unsigned maximum
  1404. umin ( u1 u2 -- u3 )
  1405.    Unsigned minimum
  1406. unnest ( -- )
  1407.    Return from a colon definition
  1408. until ( flag -- )
  1409.    Exit from BEGIN .. UNTIL loop if true
  1410. up ( -- )
  1411.    Move the cursor up one line
  1412. up! ( addr -- )
  1413.    Change the starting address of the user area
  1414. up0 ( -- addr )
  1415.    USER variable containing the starting address of the USER area
  1416. up@ ( --  addr )
  1417.    The starting address of the aser area
  1418. upc ( char -- upper-case-char )
  1419.    Convert to upper case
  1420. update ( -- )
  1421.    Not Implemented
  1422. upper ( addr len -- )
  1423.    Convert a string to upper case
  1424. user ( offset -- )    name
  1425.    Define a variable at the given offset in the user area
  1426. user-size ( -- n )
  1427.    The size in bytes of the USER area.
  1428. user-state ( -- )
  1429.    The processor is put into user state
  1430. variable ( -- )    name
  1431.    Define a variable
  1432. vec! ( addr vector-number -- )
  1433.    Install an interrupt/exception handler
  1434. vfind ( str voc-ptr -- cfa 1 )
  1435.    Search for a word in a single vocabulary
  1436. voc-link ( -- addr )
  1437.    USER variable containing the address of the last vocabulary created
  1438. vocabulary ( -- )    name
  1439.    Define a new vocabulary
  1440. vocs ( -- )
  1441.    Display the names of all vocabularies
  1442. w! ( n addr -- )
  1443.    Store a word at addr
  1444. w, ( w -- )
  1445.    Place a word in the dictionary
  1446. w->l ( uw -- l )
  1447.    Convert a an unsigned to 16-bit number to a 32-bit number
  1448. w@ ( addr -- w )
  1449.    Fetch the unsigned word at addr
  1450. wa+ ( addr1 index -- addr2 )
  1451.    Increment by index times the size of a word
  1452. wa1+ ( addr1 -- addr2 )
  1453.    Increment by the size of a word
  1454. warm ( -- )
  1455.    Restart Forth after a hardware exception
  1456. warm-hook ( -- )
  1457.    USER variable controlling "isn't Unique" messages
  1458. wconstant ( w -- )    name
  1459.    Define a 16-bit constant
  1460. wflip ( l1 -- l2 )
  1461.    Swap words with a longword
  1462. whatis ( -- )    word
  1463.    Display a brief description of the word
  1464. where ( -- )
  1465.    Exit from BEGIN .. WHILE .. REPEAT if false
  1466. within ( n min max -- f )
  1467.    True if n <= x < max
  1468. wljoin ( w.low w.high -- l )
  1469.    Join two words to form a longword
  1470. word ( char -- addr )
  1471.    Collect char-delimited input string
  1472. word-bounds ( acf -- apf addr )
  1473.    Find the start and end of a colon definition's body
  1474. words ( -- )
  1475.    Display the names of the words in the CONTEXT vocabulary
  1476. words ( -- )
  1477.    Display the words in the context vocabulary
  1478. write ( -- n )
  1479.    The code used by OPEN to mean the file is to be written
  1480. write-open ( name -- )
  1481.    Open file for writing; it must already exist
  1482. writing     filename
  1483.    Create a new file and open it for writing
  1484. wsearch ( w start end -- loc true | false )
  1485.    Search for 16-bit word w between start-addr and end-addr
  1486. wvariable ( -- )    name
  1487.    Begin defining a word to execute an extended BIOS function
  1488. xload ( -- )    filename
  1489.    Load the file and print a message to that effect
  1490. xor ( n1 n2 -- n3 )
  1491.    Exclusive or
  1492. zapaes ( -- )
  1493.    Get rid of the GEM AES; useless if TOS is in ROM
  1494. [ ( -- )
  1495.    Begin interpreting
  1496. [""] ( -- )    word
  1497.    Compile the characters of a word collected from the input stream
  1498. ['] ( -- addr )
  1499.    Compile the compilation address of a word
  1500. [assembler] ( -- )
  1501.    Immediately select the assembler vocabulary
  1502. [compile] ( -- )
  1503.    Compile next word even if it's immediate
  1504. \ ( -- )    rest-of-line
  1505.    Comment to end of line
  1506. \c ( -- )    rest-of-line
  1507.    Comment to end of line; same as \
  1508. \dtc ( -- )
  1509.    Does nothing
  1510. \dtc ( -- )
  1511.    Ignore the rest of the line
  1512. \needs ( -- )    needed-word rest-of-line
  1513.    Ignore rest of line if needed-word is already defined
  1514. \t16 ( -- )
  1515.    Ignore the rest of the line
  1516. \t32 ( -- )
  1517.    Does nothing
  1518. ] ( -- )
  1519.    Begin compiling
  1520. { ( -- )    argument list}
  1521.    Begin the argument specification for BDOS:, etc
  1522. cal inversion
  1523. lnover ( l1 n -- l1 n l2 )
  1524.    Copy a longword over a normal
  1525. lnswap ( l n -- n l )
  1526.    Swap 
  1527. ◆◆